/**
 * @author wcj
 * @Date 2021/6/7 12:12
 * @Version 1.0
 */
public class StaticClassDoubleCheck {

    /**
     * 多线程下，JMM内存模型会自动保证获取类的同步：
     * 多线程同时进行同一个类的初始化的时候，回去竞争LC锁，通过锁的机制保证了临界区内部即便发生了重排序，但是这种重排序对其他线程不可见
     */
    private static class InstanceHolder {
        static StaticClassDoubleCheck instance = new StaticClassDoubleCheck();
    }

    public static StaticClassDoubleCheck getInstance() {
        return InstanceHolder.instance;
    }
}
